

const Card = require('../Models/Card');
const HuLogic = require('../Models/HuAlgorithm/HuLogic')
const assert = require('assert');


describe('胡牌测试', function () {

    it('检查胡牌', function () {
        var testPaiList =
            [
                ["1万", "3万", "5万", "6万", "7万", "8筒", "8筒", "6筒", "6筒", "4筒", "4筒", "中", "中", "5筒"],
                ["5万", "6万", "4万", "9筒", "9筒", "8筒", "1条", "6筒", "2条", "3条", "南", "南", "中", "7筒",],//7筒
                ["1万", "3万", "4万", "5万", "6万", "2筒", "3筒", "4筒", "5筒", "7筒", "南", "中", "中", "南"],//南
                ["1万", "3万", "4万", "5万", "6万", "2筒", "3筒", "4筒", "5筒", "7筒", "中", "中", "中", "8万"],//8万
                ["2筒", "4筒", "5筒", "6筒", "7筒", "2万", "4万", "5万", "7万", "8万", "8万", "中", "白", "3万"],//3万

                ["6筒", "6筒", "1条", "3条", "4条", "5条", "6条", "7条", "9条", "7万", "9万", "中", "白", "中"],//中
                ["3筒", "4筒", "5筒", "5筒", "6筒", "7筒", "3条", "4条", "8条", "8条", "3万", "5万", "白", "4万"],//4万
                ["9筒", "9筒", "6条", "7条", "8条", "3万", "3万", "4万", "6万", "7万", "7万", "7万", "白", "3万"],//3万
                ["1筒", "2筒", "3筒", "4筒", "5筒", "6筒", "2万", "5万", "7万", "8万", "中", "中", "白", "4万"],//4万
                ["2筒", "3筒", "4筒", "7筒", "8筒", "5条", "6条", "7条", "9条", "9条", "7万", "7万", "白", "中"],//中

                ["5筒", "1条", "2条", "3条", "6条", "7条", "8条", "6万", "7万", "7万", "8万", "9万", "白", "5万"],//5万

                ["白", "中", "中", "8条", "7条", "7条", "5条", "4条", "3条", "2条", "5万", "3万", "2万", "1万"],//1万
                ["中", "1条", "3条", "4条", "5条", "6条", "1万", "1万", "2万", "3万", "4万", "5万", "7万", "白"],//白
                ["白", "9条", "8条", "8条", "7条", "7条", "4条", "3条", "5筒", "4筒", "3筒", "2筒", "2筒", "4条"],//4条

                ["7万", "8万", "9万", "9条", "9条", "8条", "8条", "4筒", "3筒", "2筒", "1筒", "白", "白", "中"],//"中"
                ["9万", "8万", "7万", "6万", "4万", "3万", "2万", "1万", "3条", "1条", "1条", "白", "白", "1条"],//

                ["7万", "7万", "3万", "3万", "9条", "8条", "7条", "8筒", "7筒", "6筒", "5筒", "4筒", "中", "7万"],//"7万"
                ["8万", "7万", "4万", "4万", "9条", "8条", "7条", "7筒", "5筒", "2筒", "2筒", "白", "中", "2筒"],//"2筒"

                ["8万", "7万", "6万", "4万", "3万", "2万", "1万", "7筒", "6筒", "5筒", "3条", "3条", "中", "9万"],//"9万"


                ["中", "中", "9条", "8条", "8条", "7条", "6条", "5条", "4条", "3条", "9筒", "7筒", "2筒", "8筒"],//"8筒"
                ["白", "中", "9条", "8条", "7条", "6条", "9筒", "9筒", "7筒", "5筒", "4筒", "2筒", "3筒", "4条"]//"4条"
            ];

        var testHuResult = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1];
        for (let i = 0; i < testPaiList.length; i++) {
            let cardDisplayNameList = testPaiList[i];

            let cardList = Card.CreateCardWithNameList(cardDisplayNameList, [31, 32, 33]);
            let huLogic = new HuLogic();
            let isHu = huLogic.checkHu(cardList);
            assert(isHu == testHuResult[i]);

        }


    })
})